#include <iostream>
#include <unistd.h>
#include <signal.h>

#include <sys/wait.h>
#include <sys/types.h>

using namespace std;

// int main()
// {
//     pid_t id = fork();
//     if (id == 0)
//     {
//         sleep(20);
//         int a = 10;
//         a /= 0;
//         exit(1);
//     }
//     int status = 0;
//     waitpid(id, &status, 0);
//     cout << "父进程: " << getpid() << ", 子进程: " << id
//          << ", exit sig: " << (status & 0x7F) << ", is core: " << ((status >> 7) & 1) << endl;

//     return 0;
// }

// void catchSignal(int signum)
// {
//     cout << "捕捉到了一个信号，正在处理：" << signum << ", pid: " << getpid() << endl;
// }

// int main()
// {
//     signal(SIGINT, catchSignal);

//     while (true)
//     {
//         cout << "进程运行中... pid: " << getpid() << endl;
//         sleep(1);
//     }

//     return 0;
// }